Illumination Functions
In 3-D computer graphics, techniques exist that attempt to capture the way in which light interacts in the real world. Such techniques may take into account, at locations on a surface in a scene, the light that comes directly from a light source (direct lighting, or direct illumination), and light rays from one or more light sources reflected by other surfaces in the scene (indirect illumination) to determine global illumination for the locations. A reflectance function may be applied to a surface to determine reflectance at locations of the surface; this reflectance may, for example, be used in determining indirect illumination at locations of the scene. Given a direction from a perspective point, and given incoming light from another direction or directions, a reflectance function may determine how much light is reflected from a surface towards the perspective point. An example of a reflectance function is the bidirectional reflectance distribution function (BRDF).
Environment Maps
In computer graphics, it is common to have functions that need to be represented or defined over a sphere, or a space. For example, a user might want to load an image and have it wrapped over a sphere, and assume that the image is lighting a scene within the sphere. A function may encode, at every pixel location in the scene, the intensity of light that is coming in from the environment represented by the image. The wrapped image may be referred to as an environment map. In this example, the environment map is used for lighting the scene within the sphere. However, environment maps may be used for other purposes than lighting in computer graphics, and other functions than a lighting function may be used with environment maps.
There may be various techniques to approximate these functions over a sphere. For example, the function may be given a direction, represented by the azimuth and polar angle, around the sphere. The function returns a value for the input direction. In the case of a lighting function, for a given azimuth and polar angle on the environment map, the function returns an intensity. In the case of a pixel representation with multiple channels, e.g. RGB pixels, the function may be applied separately to each pixel channel, e.g. to R, G and B separately for RGB pixels.
Work has been done on compressing, encoding, and representing these spherical signals or functions defined over a sphere. Two such representations are spherical harmonics and wavelets.
Spherical Harmonics
Spherical harmonics are a frequency-space basis for representing functions defined over a sphere. Spherical harmonics have been studied extensively, and have widespread applicability to many physical problems ranging from atomic electron configurations in physical chemistry, to the representation of gravitational and magnetic fields of planetary bodies in geodesy. Spherical harmonics also appear in quantum mechanics as the solutions of the Schrödinger equation in spherical coordinates.
In computer graphics, many quantities are naturally defined over the spherical or hemispherical domain, making spherical harmonics a natural basis for these computations. Furthermore, spherical harmonics have many convenient properties that lead to efficient implementations for convolutions, rotations, and double product integrals. Consequently, spherical harmonics have found recent popularity in computer graphics in the area of precomputed radiance transfer (PRT) techniques, and have also been used heavily in related domains such as radiative transfer. These properties and operations of spherical harmonics in the prior art are summarized in the table illustrated in FIG. 1, which summarizes and compares capabilities of spherical harmonics and Haar wavelets according to prior art.
Wavelets
Another class of basis functions that may be used in computer graphics is wavelets. Whereas spherical harmonics decompose functions into independent frequency bands, wavelets hierarchically decomposing functions into components that are localized in both frequency and space. Due to their simplicity, Haar wavelets have received much attention in computer graphics research. Haar wavelets, for example, have been successfully applied to PRT and radiosity computation. Furthermore, Haar wavelets support efficient sampling using a simple hierarchical warping technique.
Haar wavelets and spherical harmonics share many of the same strengths. FIG. 1 shows a table that summarizes and compares capabilities of spherical harmonics and Haar wavelets according to the prior art. Haar wavelets can more efficiently approximate high-frequency functions; however, they do not support efficient rotations and may produce distracting aliasing artifacts. Spherical harmonics, on the other hand, support efficient rotation and are efficient for representing low-frequency functions. Spherical harmonics do not suffer from the same aliasing artifacts as Haar wavelets but instead exhibit error in the form of “ringing”.
Importance Sampling
Generating samples according to the intensity distribution of a function is a useful operation in many disciplines. In Monte Carlo techniques, this takes the form of importance sampling and can be used to significantly reduce variance in numerical integration. Importance sampling techniques also have widespread use outside of Monte Carlo rendering. For example, importance sampling techniques can be used in non-photorealistic rendering, artificial stippling, and procedural geometry placement. It may be beneficial to also enforce certain quality measures on the resulting sample distribution in order to reduce variance further or simply to obtain more visually pleasing distributions.
Mip Maps
In computer graphics, a mip map (also referred to as MIP map or mipmap) is a technique for storing multiple resolutions of a single image. Typically this includes the original high-resolution image, plus successive copies of the image reduced in resolution by a factor of 2 in each dimension. This collection of images forms an “image-pyramid” where the level in the pyramid determines the resolution and level-of-detail of the image.